<?php


namespace app\api\controller;

use app\BaseController;
use think\exception\HttpResponseException;

/**
 * 前台基础空值器 -- 需要登录场景验证的继承该控制器
 * Class AuthBase
 * @package app\api\controller
 */
class AuthBase extends ApiBase
{
    public $userId = 0;//用户id默认值
    public $username = "";//用户昵称默认值
    public $accessToken = "";//token默认值

    /**
     * 初始化
     * @author bjy
     */
    public function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
        $this->accessToken = $this->request->header("access-token");//获取请求头内的token
        //判断头部请求是否有token，且当前的token未失效
        if (!$this->accessToken || !$this->isLogin()) {
            return $this->show(-100, '请登录', $this->isLogin());
        }
    }

    /**
     * 判断用户是否登录
     * @return bool
     * @author bjy
     */
    public function isLogin()
    {
        //获取redis内的token信息
        $userInfo = cache(config('redis.front_token_pre') . $this->accessToken);
        if (!$userInfo) {
            return false;
        }
        //判断用户id、用户名称是否为空
        if (!empty($userInfo['id']) && !empty($userInfo['username'])) {
            $this->userId   = $userInfo['id'];//用户id
            $this->username = $userInfo['username'];//用户名称
            return true;
        }
        return false;
    }


}